﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using C = System.Console;

namespace Edu.Console
{
    class Data
    {
        public int Value { get; set; }
        public override string ToString()
        {
            return Value.ToString();
        }

        static int Add(int x, ref int y)
        {
            y = 10;

            return x + y;
        }

        static int Add(int x, ref int y, int z = 100, int w = 200)
        {
            y = 10;

            return x + y + z + w;
        }

        static int Add(Data x, ref Data y)
        {
            x = new Data { Value = 5 };
            y = new Data { Value = 10 };
            return x.Value + y.Value;
        }


        public static void Lesson ()
        {
            var x = 1;
            var y = 2;
            C.WriteLine("Sum = {0}, x={1}, y= {2}", Add(x,ref y, w:300), x, y);

            var d1 = new Data { Value = 1 };
            var d2 = new Data { Value = 2 };
            C.WriteLine("Sum = {0}, d1 = {1}, d2 = {2}", Add(d1, ref d2), d1, d2);


            Data d3 = new Data { Value = 15};
            // var d4 = d3.Value + 1;
            Add(d1, d2, out d3);
            C.WriteLine("Sum = {0}, d1 = {1}, d2 = {2}", d3, d1, d2);
            var d4 = d3.Value + 1;
        }

        static void Add(Data x, Data y, out Data res)
        {
            res = new Data { Value = x.Value + y.Value };

        }
    }
}
